home *** CD-ROM | disk | FTP | other *** search
/ Verve: Wild @ Work / Verve: Wild @ Work - Disc 1.iso / pc / data / otherproducts.dxr / Internal_4_carousel image.ls < prev    next >
Encoding:
Text File  |  2001-10-29  |  3.6 KB  |  117 lines

  1. property pActive, pMoveFlag, pImageResultList, pspritenum, pImageCode, pDir, pDistance, pDX, pAnchorSprite, pKeyLineSprite
  2. global gSpriteList, gNumOfSpriteChannels, gCenterSprite
  3.  
  4. on beginSprite me
  5.   pspritenum = me.spriteNum
  6.   pDistance = 40
  7.   pDX = 8
  8.   pMoveFlag = 0
  9.   pDir = #scrollRight
  10.   pAnchorSprite = 58
  11.   pKeyLineSprite = 81
  12.   pActive = 0
  13. end
  14.  
  15. on initImage me, imageResultList, imageCode
  16.   pActive = 1
  17.   pImageResultList = imageResultList
  18.   pImageCode = imageCode
  19.   sprite(pspritenum).member = pImageCode
  20. end
  21.  
  22. on moveImage me, dir
  23.   if pActive then
  24.     pDir = dir
  25.     pMoveFlag = 1
  26.   end if
  27. end
  28.  
  29. on stopImage me
  30.   if pActive then
  31.     pMoveFlag = 0
  32.   end if
  33. end
  34.  
  35. on mouseUp me
  36. end
  37.  
  38. on exitFrame me
  39.   if pActive then
  40.     if pMoveFlag then
  41.       X = sprite(pspritenum).locH
  42.       if pDir = #scrollRight then
  43.         firstImageCode = sprite(gSpriteList[1]).pImageCode
  44.         pos = pImageResultList.getPos(firstImageCode)
  45.         if (X < 900) or (pos = 1) then
  46.           if pos <> 1 then
  47.             X = X + pDX
  48.           else
  49.             if sprite(gSpriteList[1]).locH < 400 then
  50.               X = X + pDX
  51.             end if
  52.           end if
  53.         else
  54.           pImageCode = pImageResultList[pos - 1]
  55.           sprite(pspritenum).member = pImageCode
  56.           h = sprite(gSpriteList[1]).locH
  57.           w = sprite(gSpriteList[1]).width
  58.           w2 = sprite(pspritenum).member.width
  59.           X = h - (w / 2) - pDistance - (w2 / 2)
  60.           deleteAt(gSpriteList, gNumOfSpriteChannels)
  61.           gSpriteList.addAt(1, pspritenum)
  62.         end if
  63.       else
  64.         lastImageCode = sprite(gSpriteList[gNumOfSpriteChannels]).pImageCode
  65.         pos = pImageResultList.getPos(lastImageCode)
  66.         if (X > -100) or (pos = pImageResultList.count) then
  67.           if pos <> pImageResultList.count then
  68.             X = X - pDX
  69.           else
  70.             if sprite(gSpriteList[gNumOfSpriteChannels]).locH > 400 then
  71.               X = X - pDX
  72.             end if
  73.           end if
  74.         else
  75.           pImageCode = pImageResultList[pos + 1]
  76.           sprite(pspritenum).member = pImageCode
  77.           h = sprite(gSpriteList[gNumOfSpriteChannels]).locH
  78.           w = sprite(gSpriteList[gNumOfSpriteChannels]).width
  79.           w2 = sprite(pspritenum).member.width
  80.           X = h + (w / 2) + pDistance + (w2 / 2)
  81.           deleteAt(gSpriteList, 1)
  82.           append(gSpriteList, pspritenum)
  83.         end if
  84.       end if
  85.       sprite(pspritenum).locH = X
  86.     end if
  87.   end if
  88. end
  89.  
  90. on centerSprite me
  91.   if pActive then
  92.     if sprite pspritenum intersects pAnchorSprite then
  93.       thisSpritePos = getPos(gSpriteList, pspritenum)
  94.       sprite(pspritenum).locH = 400
  95.       if thisSpritePos = 1 then
  96.         repeat with i = 2 to gNumOfSpriteChannels
  97.           newloch = (sprite(gSpriteList[i]).width / 2) + pDistance + (sprite(gSpriteList[i - 1]).width / 2)
  98.           sprite(gSpriteList[i]).locH = sprite(gSpriteList[i - 1]).locH + newloch
  99.         end repeat
  100.       else
  101.         repeat with j = thisSpritePos - 1 down to 1
  102.           newloch = (sprite(gSpriteList[j]).width / 2) + pDistance + (sprite(gSpriteList[j + 1]).width / 2)
  103.           sprite(gSpriteList[j]).locH = sprite(gSpriteList[j + 1]).locH - newloch
  104.         end repeat
  105.         repeat with j = thisSpritePos + 1 to gNumOfSpriteChannels
  106.           newloch = (sprite(gSpriteList[j]).width / 2) + pDistance + (sprite(gSpriteList[j - 1]).width / 2)
  107.           sprite(gSpriteList[j]).locH = sprite(gSpriteList[j - 1]).locH + newloch
  108.         end repeat
  109.       end if
  110.       updateStage()
  111.       member("currentImageCode").text = pImageCode
  112.       utilsSaveState(utilsGetSection(), #imageCode, pImageCode)
  113.       sprite(pKeyLineSprite).rect = sprite(pspritenum).rect
  114.     end if
  115.   end if
  116. end
  117.